<?php
class Output_dao extends Base_dao
{	
	function __construct()
    {
		parent::__construct();
		
		$this->nombreTabla = 'output';
		$this->nombreColumnaID = 'id';
		$this->nombreModelo = 'Output_dto';
		
		$this->load->model("$this->nombreModelo");
	}
	
	public function guardar($objOutputDTO)
	{		
		// Controlar si guarda bien, ya que se está llamando al método padre
		$result = parent::guardar($this->nombreTabla, $this->nombreColumnaID, $objOutputDTO, $objOutputDTO->id);
		
		if($result['exito'])
		{
			if ($objOutputDTO->id == 0) { $objOutputDTO->id = $result['idGenerado']; }
		}
		
		return $result;
	}

	
	public function borrar($idOutput)
	{
		$result = parent::borrar($this->nombreTabla, $this->nombreColumnaID, $idOutput);	
		return $result;
	}
	
	public function obtenerDatos($condiciones = array(), $crearObjetos = false, $limite = 0)
	{	
		return parent::obtenerDatos($this->nombreTabla, $this->nombreModelo, $condiciones, $crearObjetos, $limite);
	}
	
	public function obtenerObjetos($condiciones = array(), $limite = 0)
	{
		return $this->obtenerDatos($condiciones, true, $limite);
	}
	
	public function obtenerObjetoPorID($idBuscado)
	{
		$obj = parent::obtenerObjetoPorID($this->nombreTabla, $this->nombreColumnaID, $this->nombreModelo, $idBuscado);
		if($obj == NULL) $obj = new Output_dto();
		
		return $obj;
	}
	
	public function getTreeStructure($idOutcome = 0, $idOutput = 0)
	{	
		// Obtiene la informacion de todas las entradas correspondientes a una ronda
		$this->db->select("id, name");
		
		if($idOutcome != 0) $this->db->where("idOutcome", "$idOutcome");
		if($idOutput != 0) $this->db->where("id", "$idOutcome");
		
		$this->db->order_by("name", 'asc');
		
		return $this->db->get("$this->nombreTabla");
	}
}